home *** CD-ROM | disk | FTP | other *** search
/ Assassins - Ultimate CD Games Collection 2 / Assassins 2 - Ultimate Games No. 2 (1995)(Weird Science)[!][Amiga-CD32-CDTV].iso / disks / asi023.dms / asi023.adf / LEVEL-DESIGNER.AMOS / LEVEL-DESIGNER.amosSourceCode < prev    next >
AMOS Source Code  |  1989-11-07  |  4KB  |  105 lines

  1. Set Rainbow 1,1,24,"","","" : Rainbow 1,1,1,1 : Dim N(208) : Show 
  2. Global N(),POSITION,KOLOUR,NUMOFHITS,LEVEL,X,Y
  3. Fade 1 : Cls 0
  4. Load Iff "arcadia.iff",0 : Cls 0,234,0 To 319,255 : Colour 14,$668
  5. Fade 1 To 0 : LEVEL=1 : KOLOUR=6 : NUMOFHITS=1 : INIT : BLOCKIN
  6. Do 
  7. C=Choice(1)
  8. If C=1 Then SETCOLOUR
  9. If C=2 Then SETNOH
  10. If Key State(80) Then BLOCKIN
  11. If Key State(81) Then BLOCKOUT
  12. If Key State(83) Then SETLEVEL[-1]
  13. If Key State(82) Then SETLEVEL[1]
  14. If Key State(84) Then INIT
  15. If Key State(85) Then DISKSAVE
  16. If Key State(86) Then Run "ARCADIA.AMOS"
  17. X=X Screen(X Mouse) : Y=Y Screen(Y Mouse) : X=X-17 : Y=Y-25 : X=X/16+1 : Y=Y/8 : If X>0 and X<14 and Y>-1 and Y<16 Then Pen 0 : Paper 14 : POSITION=X+Y*13 : Locate 17,25 : Print POSITION;"  "
  18. If Mouse Key=1 Then SETBRICK
  19. Loop 
  20. Edit 
  21. Procedure INIT
  22. Change Mouse 3
  23. For Z=1 To 207 Step 13 : For ZZ=0 To 12
  24. Ink 0 : POSITION=Z+ZZ : X=ZZ*16+16 : Y=((Z+12)/13*8)+16
  25. Box X,Y To X+16,Y+8 : Ink 14 : Bar X+1,Y+1 To X+15,Y+7 : N(POSITION)=0
  26. Next ZZ : Next Z
  27. Paper 14 : Pen 0 : Locate 6,23 : Print "MUMBER OF HITS=";NUMOFHITS;"    "
  28. Locate 8,25 : Print "POSITION=";POSITION;"  "
  29. Locate 7,27 : Print "EDITING LEVEL";LEVEL;" "
  30. Locate 6,21 : Print "COLOUR IN USE=" : Ink 0 : Box 161,166 To 181,176 : Ink KOLOUR : Paint 165,170,1
  31. Pen 6 : Locate 3,29 : Print "RIGHT MOUSE KEY FOR MENU"
  32. Paper 12 : Pen 0 : Menu$(1)=" COLOUR  " : Menu$(2)="  NUMBER OF HITS"
  33. Pen 0 : For Z=1 To 12 : Paper Z : Menu$(1,Z)=">      " : Next 
  34. Pen 7 : Paper 0 : Menu$(2,1)="SOLID" : For Z=2 To 10 : Menu$(2,Z)=" "+Str$(Z-1)+"  " : Next : Menu$(2,11)="CLEAR"
  35. Locate 31,1 : Print "OPTIONS"
  36. Locate 31,2 : Print "======="
  37. Locate 34,4 : Print "F1" : Locate 34,8 : Print "F2" : Locate 34,12 : Print "F3" : Locate 34,16 : Print "F4" : Locate 34,20 : Print "F5" : Locate 34,24 : Print "F6" : Locate 34,28 : Print "F7"
  38. Locate 33,5 : Print "SHOW"
  39. Locate 32,9 : Print "STORE"
  40. Locate 31,13 : Print "LEVEL UP"
  41. Locate 30,17 : Print "LEVEL DOWN"
  42. Locate 30,21 : Print "CLEAR PAGE"
  43. Locate 30,25 : Print "DISK SAVE"
  44. Locate 30,26 : Print "ALL LEVELS"
  45. Locate 33,29 : Print "QUIT"
  46. KOLOUR=7 : NUMOFHITS=1
  47. Change Mouse 1
  48. Menu On 
  49. End Proc
  50. Procedure BLOCKOUT
  51. Change Mouse 3
  52. D=Start(9) : E=LEVEL-1 : E=E*416 : Add D,E
  53. For Z=1 To 208 Step 13 : For ZZ=0 To 12
  54. A=Z+ZZ : X=ZZ*16+18 : Y=((Z+12)/13*8)+18
  55. B=Point(X,Y) : C=N(A) : 
  56. Poke D,B : Poke D+1,C : Add D,2
  57. Next ZZ : Next Z
  58. Change Mouse 1 : KOLOUR=7 : NUMOFHITS=1
  59. End Proc
  60. Procedure BLOCKIN
  61. Change Mouse 3
  62. D=Start(9) : E=LEVEL-1 : E=E*416 : Add D,E
  63. For Z=1 To 208 : POSITION=Z : KOLOUR=Peek(D) : NUMOFHITS=Peek(D+1) : N(Z)=NUMOFHITS
  64. If N(Z)>20 Then N(Z)=-1 : NUMOFHITS=-1
  65. X=POSITION mod 12 : X=X*16+18 : Y=((POSITION+12)/13*8)+18
  66. If KOLOUR<>14 Then SETBRICK
  67. Add D,2 : Next Z
  68. Change Mouse 1 : KOLOUR=7 : NUMOFHITS=1
  69. End Proc
  70. Procedure SETCOLOUR
  71. If NUMOFHITS<>0 Then KOLOUR=Choice(2)
  72. Ink KOLOUR : Paint 165,170,1
  73. End Proc
  74. Procedure SETNOH
  75. NUMOFHITS=Choice(2)-1
  76. Paper 14 : Pen O
  77. If NUMOFHITS>0 and NUMOFHITS<10 Then Locate 21,23 : Print NUMOFHITS;"    "
  78. If NUMOFHITS=0 Then NUMOFHITS=-1 : Locate 21,23 : Print "SOLID"
  79. If NUMOFHITS=10 Then Ink 14 : KOLOUR=14 : Paint 165,170,1 : Locate 21,23 : Print "CLEAR" : NUMOFHITS=0
  80. End Proc
  81. Procedure SETBRICK
  82. Ink KOLOUR : X=POSITION mod 13 : Y=POSITION/13
  83. If X=0 Then Add X,13 : Add Y,-1
  84. X=X*16 : Y=Y*8+25
  85. Bar X+1,Y To X+15,Y+6
  86. If KOLOUR<13 and NUMOFHITS>0 Then Gr Writing 0 : Q=KOLOUR : Add Q,11,0 To 15 : Ink Q,KOLOUR : Text X-3,Y+6,Str$(NUMOFHITS) : Gr Writing 1
  87. N(POSITION)=NUMOFHITS
  88. End Proc
  89. Procedure SETLEVEL[D]
  90. While Key State(82) or Key State(83)
  91. If Key State(82) Then D=1
  92. If Key State(83) Then D=-1
  93. Add LEVEL,D,1 To 50
  94. Ink 0 : Paper 14 : Locate 20,27 : Print LEVEL;" " : Wait 15
  95. Wend 
  96. INIT
  97. BLOCKIN
  98. End Proc
  99. Procedure DISKSAVE
  100. Change Mouse 3
  101. Doke Start(9)+20900,100
  102. Poke Start(9)+20908,1
  103. Save "BRICKS2.ABK",9
  104. Change Mouse 1
  105. End Proc